# 使用练习3中生成的复数信号进行绘图
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 黑体
plt.rcParams['axes.unicode_minus'] = False   # 解决负号显示问题


duration = 0.01  # 0.01秒
sample_rate = 32000  # 32kHz采样频率
t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False)

# 创建复数信号（欧拉公式：e^(jωt) = cos(ωt) + j*sin(ωt)）
freq = 1000  # 1kHz频率
complex_signal = np.exp(1j * 2 * np.pi * freq * t)

plt.figure(figsize=(12, 8))

# 绘制实部和虚部
plt.subplot(2, 1, 1)
plt.plot(t, complex_signal.real, 'b-', label='实部 (cos)', linewidth=1.5)
plt.plot(t, complex_signal.imag, 'r--', label='虚部 (sin)', linewidth=1.5)
plt.title('复数信号的实部和虚部 (1kHz)')
plt.xlabel('时间 (秒)')
plt.ylabel('幅度')
plt.legend()
plt.grid(True)

# 绘制模和相位
plt.subplot(2, 1, 2)
plt.plot(t, np.abs(complex_signal), 'g-', label='模', linewidth=2)      
plt.title('复数信号的模 (1kHz)')
plt.xlabel('时间 (秒)')
plt.ylabel('模值')
plt.legend()
plt.grid(True)

plt.tight_layout()
plt.show()